1. Technical Field
The present application relates generally to an improved data processing system and method. More specifically, the present application is directed to a system and method for broadcasting instructions/data to a plurality of processors in a multiprocessor device via aliasing.
2. Description of Related Art
The recent trend in computing devices is to provide multiple processors in a single computing device that may each execute different instructions at substantially the same time. By providing multiple processors in this way, greater speed of execution of instructions is achieved by distributing an application across multiple processors.
One type of multiprocessor system is the symmetric multiprocessor (SMP) system in which two or more identical processors are connected to a single shared main memory. Most common multiprocessor systems today use an SMP architecture. SMP systems allow any processor to work on any task no matter where the data for that task is located in memory. With proper operating system support, SMP systems can easily move tasks between processors to balance the work load efficiently. On the downside, memory is much slower than the processors accessing them, and even single-processor machines tend to spend a considerable amount of time waiting for data to arrive from memory. SMP makes this worse, as multiple processors are competing for one set of resources.
Different types of memory organization are used in SMP systems. One such type is Non-Uniform Memory Access (NUMA) systems which dedicate different memory banks to different processors. This allows processors to access memory in parallel, which can dramatically improve memory throughput if the data is localized to specific processes and thus, specific processors. On the downside, NUMA makes the cost of moving data from one processor to another more expensive, meaning that balancing a workload is more expensive. The benefits of NUMA are limited to particular workloads, notably on servers where the data is often associated strongly with certain tasks or users.
Other systems include asymmetric or asymmetrical multiprocessing (ASMP) systems in which separate specialized processors are used for specific tasks. Moreover, computer clustered multiprocessing (e.g., Beowulf), in which not all memory is available to all processors, is another type of asymmetric multiprocessing system. The former is not widely used or supported, although the high-powered 3D chipsets in modern videocards could be considered a form of asymmetric multiprocessing. The latter is used fairly extensively to build very large supercomputers.
In these types of multiprocessor systems, the concern is the ability to distribute the processing load across a plurality of processors by having each processor process different instructions and different data. Thus, these systems are not configured to allow for the broadcasting of a singular dataset to a plurality of processors in the multiprocessor system. In fact, the bus architecture in such systems typically prevents broadcasting of instructions and/or data to a plurality of processors since it is necessary to be able to distinguish between processors in order to perform load distribution and load balancing operations.